iT邦幫忙

2023 iThome 鐵人賽

DAY 12
0

我發現最近幾年的比較已經變成 Data Pipeline vs. ETL Pipeline。

人外有人,天外有天

這個系列讓我有機會再次更新自己資料領域的知識庫,總是在研究中發現,我想說的都已經被說盡,而且總有高人表達地更加精準,甚至圖文並茂。

關於 Data Pipeline 資料管線架構,有 30~60 分鐘的夥伴們可以閱讀下圖來源文章,內容紮實且全面,一次講完前世今生與各種場景。
https://ithelp.ithome.com.tw/upload/images/20230915/20161790MZFjqwIwwb.png
圖片來源:https://www.montecarlodata.com/blog-data-pipeline-architecture-explained/

無論資料管線或 ETL 都是資料生命週期中的 Data Processing 階段

資料生命週期主要有 7 個階段:

  1. 資料捕獲(Capture、Creation、Ingestion)
  2. 資料儲存(Storage)
  3. 資料處理(Processing)
  4. 資料分析(Analysis)
  5. 資料發布/分享(Sharing/ Publication)
  6. 資料歸檔(Archiving)
  7. 資料刪除(Destroy)

ETL 是什麼?為什麼要做 ETL?

早年的硬體是很貴的,儲存成本很高,而且在單體(Monolith)架構系統中,資料快滿了只有 2 條路,不是資料導出就是刪除。資料導出且不是只為了封存的話,基本就是 ETL 了。

  • E 是 extraction, 指把資料從某個系統抽取出來。
  • T 是 transformation, 指資料整合並轉換成目的地系統指定的格式。
  • L 是 loading, 指資料寫入目的地系統,並且可以被查詢。

資料在 OLTP 線上交易系統中生成,紀錄各種企業中的內外活動。我們為了更瞭解客戶或管理企業,需要調出交易紀錄與內部活動紀錄去做分析,因此將資料移動到 OLAP 系統中,一方面希望能整合不同 OLTP 系統的資料,一方面避免資料分析造成 OLTP 系統的負擔,而產生了 ETL 的需求。
然而,在硬體很貴的年代,OLAP 系統也不便宜,所以我們把 T 放在外面,資料精煉過後再進入到 OLAP。
https://ithelp.ithome.com.tw/upload/images/20230915/20161790fpjIVbVNOS.png
圖片來源:https://maestro-analytics.com/elt-vs-etl

大數據技術風行後,逐漸變成 ELT,到大數據平台裡再處理

https://ithelp.ithome.com.tw/upload/images/20230915/20161790ybErqTsusE.png
圖片來源:https://www.javatpoint.com/difference-between-etl-and-elt

大數據具現為資料服務後,以資料管線實作端到端的跨站供應鏈

https://ithelp.ithome.com.tw/upload/images/20230915/201617909NCjKdqUWC.png
圖片來源:https://www.montecarlodata.com/blog-data-pipeline-architecture-explained/

Data Pipeline vs. ETL/ELT

/ 層級 資料流型態 起迄點
Data Pipeline 母項目 Batch Data, Streaming Data, Mixed 「資料來源端」到「資料使用端」
ETL/ELT 子項目 Batch Data 系統到系統

用 ETL Tools(套裝軟體)?或客製化開發?

ETL Tools 或是 Gartner 稱為 Data Integration Tools 已經發展很長一段時間,然而每年仍有很高比例的資料管線客製化需求(不包含純 ETL 需求)。

我經常思考這是為什麼呢?

經過多年的實務經驗與觀察,我認為資料管線不易以套裝軟體實做所有需求的原因,可能是「資料來源端」到「資料使用端」涵蓋各式各樣多元的系統與處理邏輯,部署套裝軟體不見得比部署程式單純。實務上,資料管線中的站點涵蓋 ETL Tools 也是不罕見的。

我還發現幾個可能的原因,導致客製化開發資料管線仍有其必要性:

  1. 資料產品化的趨勢,使得資料處理需要迭代,以精煉資料產品的價值
  2. 資料管線中整合的對象,開始出現各種開源軟體(尤其是 ML, AI),需要保持架構的開放性

Data Engineer 們除了 ETL 套裝軟體外,也需要持續關注開源社區的各種資料整合工具。(太辛苦了~)/images/emoticon/emoticon13.gif


上一篇
Data Virtualization 資料虛擬化(vs. Data Warehouse vs. Data Lake)
下一篇
Data Lakehouse (資料湖倉),順便淺談 Apache Iceberg
系列文
吵什麼 AI 煉金術?!你家有礦嗎?(資料領域必知的 30 個詞彙)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
MatthewWangUS
iT邦新手 3 級 ‧ 2023-09-19 12:02:31

ETL工具裡通常會有自定 execute shell script 的 step. 這步就是通常用來整合外部程式用的。不過在資料進ODS前/後 ,只要分析師/顧問認為可用自定程式處理掉資料轉出/轉換/轉入/等問題也不是不可以。

我要留言

立即登入留言